package cn.net.cfss.fgbp.provider.manage.spi;

import cn.net.cfss.fgbp.base.page.PageData;
import cn.net.cfss.fgbp.base.service.FeignBaseService;
import cn.net.cfss.fgbp.provider.manage.biz.FscTenantBiz;
import cn.net.cfss.fgbp.provider.manage.service.MyFscTenantService;
import cn.net.cfss.fgbp.spi.manage.constant.DeleteFlagEnum;
import cn.net.cfss.fgbp.spi.manage.dto.FscTenantDto;
import cn.net.cfss.fgbp.spi.manage.inte.IFscTenantService;
import cn.net.cfss.fgbp.spi.manage.vo.FscTenantVo;
import cn.net.cfss.fgbp.spi.manage.vo.ResultDto;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * @author wutao
 * @version 1.0
 * @date 2020/9/4 11:36
 */
@RestController
@Slf4j
public class FscTenantSpi extends FeignBaseService implements IFscTenantService {

    @Autowired
    private FscTenantBiz fscTenantBiz;

    @Autowired
    private MyFscTenantService myFscTenantService;

    @Override
    public PageData<FscTenantVo> page(PageData<FscTenantVo> page) {
        PageHelper.startPage(page.getPageNum(), page.getPageSize());


        PageData<FscTenantVo> resultPage = new PageData<>();

        List<FscTenantVo> list = fscTenantBiz.queryPage(page.getSearch());

        Page<FscTenantVo> pageInfo = (Page<FscTenantVo>) list;

        resultPage.setPageNum(page.getPageNum());
        resultPage.setPageSize(page.getPageSize());
        resultPage.setRows(list);
        resultPage.setTotal(pageInfo.getTotal());
        return resultPage;
    }

    @Override
    public ResultDto<FscTenantVo> add(FscTenantVo fscTenantVo) {
        return myFscTenantService.add(fscTenantVo);
    }

    @Override
    public ResultDto<FscTenantVo> update(FscTenantVo fscTenantVo) {
        return myFscTenantService.update(fscTenantVo);

    }

    @Override
    public List<FscTenantVo> list(FscTenantVo fscTenantVo) {
        return fscTenantBiz.list(fscTenantVo);
    }

    @Override
    public FscTenantDto selectOne(FscTenantDto fscTenantDto) {
        fscTenantDto.setDeleteFlag(DeleteFlagEnum.NOT_DEL);
        return fscTenantBiz.selectOne(fscTenantDto);
    }
}
